Discover TÜV-certified GoogleTest with Agentic AI for C/C++ testing!
Get the Details »
Whitepaper
See the highlights from our whitepaper below.
Organizations face overwhelming complexity in accessing test environments for development and QA. This whitepaper explores how on-demand test environment provisioning using service virtualization eliminates dependencies, reduces costs, and accelerates testing across composite applications.
The number and complexity of test environments needed for an organization’s projects has become overwhelming. The challenge of providing rapid access to necessary test environments with appropriate configurations has escalated because:
Coordinating access to various staged, virtualized, and live dependent components is daunting. When the cost and effort to create test environments outweighs the perceived benefit, testing is shortchanged—resulting in compromised quality and missed deadlines.
Service virtualization alleviates these pain points by enabling easy, rapid creation of test environments with dependencies eliminated. It promotes creation of "disposable" test environments without impact or cost to the organization or other teams.
Service virtualization steps in where traditional server/hardware virtualization leaves off. When server virtualization isn’t feasible, service virtualization enables you to emulate dependent application behavior. Unlike stubs or mocks, virtual assets are simple to create, represent a broad range of realistic behavior, and are easy to update as dependent applications evolve.
Even when server virtualization is possible, it’s not always the most practical approach for test environments. Typically, only a small percentage of the dependent application’s functionality is needed in the test scenario. Yet, this low utilization does little to diminish the cost or time required to acquire, configure, and adjust these applications for each test environment.
With service virtualization, you don’t have to virtualize an entire system when you need to access only a fraction of its functionality. Instead, virtual assets emulate the AUT’s specific interactions with dependent applications, then stand in for the actual components in the test environment. This results in reduced costs, faster access, and more flexible access to the exact behavior needed for testing.
Parasoft’s unique integration of service virtualization with test environment management helps teams accelerate and simplify the process of creating diverse and complex environments required for thorough testing. It enables organizations to give development, QA, and performance test engineers easy access to the very specific combinations and configurations of virtual assets needed for different test environments.
Parasoft Virtualize helps teams create and access any environment needed to develop or test an application. Through recording, teams can capture the necessary system behavior of dependent applications by leveraging Parasoft proxy recording or converting packet sniffing technologies like Wireshark or Fiddler.
Those artifacts can be converted into reusable virtual assets to execute complex test scenarios. These easily configurable virtual assets stand in place of actual dependent applications, giving teams the freedom to perform their development and testing tasks whenever they want, as extensively as they want.
Through Parasoft’s continuous testing platform (CTP), developers and testers can rapidly set up the specific configurations and combinations of virtual assets to apply in any test environment.
From a graphical system map, users can specify whether each dependent application could be replaced with a virtual asset, specify what behavior that virtual asset should exhibit, and rapidly define and provision test environments with all necessary permutations of dependent application behaviors to start testing immediately.
For easy recording and virtualization of dependent application behavior, Virtualize captures live dependent application traffic connected to the application under test. After a simple one-time setup, Virtualize monitors behavior at any number of endpoints on demand, then represents this behavior in virtual assets that can stand in for the actual constrained components.
Working in an environment where constrained components are replaced with virtual assets, developers and testers gain the freedom to perform their expected tasks whenever they want, as extensively as they want.
This means no more deadlocks or delaying testing until late in the process when defects are exponentially more difficult and costly to fix. Virtual assets are available 24/7 for unit, functional, and performance testing—automated or manual.
A staged testing environment often lacks access to the breadth of dependent applications associated with an AUT.
This constraint is compounded for performance testers because staged testing environments traditionally lack the computing resources required to deliver realistic performance scenarios.
More commonly, you have a limited degree of control over how the component behaves and can test only a limited range of behavior conditions. This leads to incomplete testing and exposure to significant business risks.
Virtualize’s interface allows users to easily configure virtual assets to reproduce specific conditions critical for completing dev/test tasks. You can configure various error, failure, and performance conditions that are difficult to reproduce or rapidly configure with real systems.
By adding data sources and providing conditional criteria, you can tune the virtualized asset to function as expected—or as unexpected for negative testing. This helps teams validate the full range of system behavior, including its ability to respond correctly or at least fail gracefully in various exceptional situations.
Users can select different performance profiles to simulate service behavior under load, including experimenting with response times, delays, and failures.
Parasoft enables developers and testers to easily configure a test environment from existing components to meet a specific test requirement, then rapidly reconfigure that environment with a different set of components to meet a different test requirement.
In this sense, test environments are essentially disposable. Once the team is finished working with one test environment, they can simply adjust a few configuration options and move on to another one in minutes. Scenario or "what if" testing can be performed as needed, on demand. Since the endpoints are an aggregation of simulated dependent system behavior, running tests against this environment doesn’t impose any external business risks.
This approach also eliminates the pervasive problem of teams overriding each other’s work. When multiple teams are working in a traditional test environment, all too often one team spends considerable time configuring the environment to meet their specific needs. Then another team overrides this setup as they try to adjust the environment to suit their own needs.
When each team can easily create their own disposable test environments tailored for their own needs, the potential for such conflicts is eliminated. The ability to test in parallel ensures that testing can continue unhindered, enabling earlier completion and feedback.
Ready to dive deeper?